<html>
<head><meta charset="utf-8"><title>ARM build? · t-compiler/rust-analyzer · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/index.html">t-compiler/rust-analyzer</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html">ARM build?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="188066894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188066894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188066894">(Feb 13 2020 at 00:13)</a>:</h4>
<p>Hey all! With the new behavior of the extensions of trying to always download the latest from the releases, would y'all be willing to run some ARM builds too? I can do the legwork of setting up the extra CI tasks for it using <code>docker buildx</code> multiarch support if that's the case</p>



<a name="188090756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188090756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188090756">(Feb 13 2020 at 09:33)</a>:</h4>
<p>Yep, providing arm builds will be sweet. I'd love to try to avoid docker though, and rely on cross-compilation. rust-analyzer does not depend on C code, so that in theory should be not too hard</p>



<a name="188109923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188109923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188109923">(Feb 13 2020 at 14:21)</a>:</h4>
<p>cool, I'll give it a try and report back</p>



<a name="188550883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188550883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188550883">(Feb 19 2020 at 14:53)</a>:</h4>
<p>Should I add the arm build as another "os" on the matrix?</p>



<a name="188550973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188550973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188550973">(Feb 19 2020 at 14:54)</a>:</h4>
<p>I'm leaning towards this option because you have to install the cross compilation gcc toolchain</p>



<a name="188551742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188551742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188551742">(Feb 19 2020 at 15:02)</a>:</h4>
<p>How does that work? GitHub Actions has no ARM support and I don't think they'll invoke the workflow with an unsupported OS.</p>
<p>Ah, <code>runs-on</code> vs. <code>os</code>, got it.</p>



<a name="188551962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188551962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188551962">(Feb 19 2020 at 15:04)</a>:</h4>
<p>The thing that matters is the time to build and deploy. I guess xcompiling should be run in parallel with other jobs, or do we compile x64 and arm in the same process?</p>



<a name="188552197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552197">(Feb 19 2020 at 15:06)</a>:</h4>
<p>I think it can be either an extra set of steps gated on <code>os == 'ubuntu-latest'</code>, but I'm not sure how to run it in parallel via <code>matrix</code>. Well, don't mind me.</p>



<a name="188552288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552288">(Feb 19 2020 at 15:07)</a>:</h4>
<p>Matrix item combinations are run in parallel by itself, but I am not sure</p>



<a name="188552425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552425">(Feb 19 2020 at 15:08)</a>:</h4>
<p>But we'd like "<code>runs-on</code>: ${{ matrix.os }} if not ARM, else ubuntu-latest", which..</p>



<a name="188552489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552489">(Feb 19 2020 at 15:09)</a>:</h4>
<p>Make it a different job, maybe? Those also run in parallel</p>



<a name="188552578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552578">(Feb 19 2020 at 15:10)</a>:</h4>
<p>The current release workflow builds the server binaries and the Code extension in parallel, then pushes a release when both are finished.</p>



<a name="188552984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188552984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188552984">(Feb 19 2020 at 15:14)</a>:</h4>
<p>I guess we could just have</p>
<div class="codehilite"><pre><span></span> strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        arch: [x64, arm]
        exclude:
             - os: macos-latest
               arch: arm
</pre></div>



<a name="188553058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553058">(Feb 19 2020 at 15:16)</a>:</h4>
<p><a href="https://github.community/t5/GitHub-Actions/How-to-not-Allow-Some-Matrices-Together/td-p/40625" target="_blank" title="https://github.community/t5/GitHub-Actions/How-to-not-Allow-Some-Matrices-Together/td-p/40625">https://github.community/t5/GitHub-Actions/How-to-not-Allow-Some-Matrices-Together/td-p/40625</a></p>



<a name="188553220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553220">(Feb 19 2020 at 15:17)</a>:</h4>
<blockquote>
<p>I'm leaning towards this option because you have to install the cross compilation gcc toolchain</p>
</blockquote>
<p>Why is that? We shouldn't have any C code?</p>



<a name="188553408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553408">(Feb 19 2020 at 15:19)</a>:</h4>
<p>libbacktrace</p>



<a name="188553513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553513">(Feb 19 2020 at 15:21)</a>:</h4>
<p>Ahhhhhhh.... Can we use clang instead of gcc?</p>



<a name="188553528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553528">(Feb 19 2020 at 15:21)</a>:</h4>
<p>Clang is a native cross compiler</p>



<a name="188553555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188553555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188553555">(Feb 19 2020 at 15:21)</a>:</h4>
<p>I can try!</p>



<a name="188554663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188554663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188554663">(Feb 19 2020 at 15:31)</a>:</h4>
<p>Ok, we depend on libbacktarce by accident! I'll send a PR to disable it as soon as GitHub stops throwing 500s at me</p>



<a name="188555033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188555033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188555033">(Feb 19 2020 at 15:36)</a>:</h4>
<p>Aha, I do have the same problems</p>



<a name="188555041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188555041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188555041">(Feb 19 2020 at 15:36)</a>:</h4>
<p>500 when I try to merge one PR</p>



<a name="188555254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188555254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> std::Veetaha <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188555254">(Feb 19 2020 at 15:39)</a>:</h4>
<p><a href="https://www.githubstatus.com/" target="_blank" title="https://www.githubstatus.com/">https://www.githubstatus.com/</a> <a href="/user_uploads/4715/WTjWsjmSU3wKz3aJ9O_mae7A/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/WTjWsjmSU3wKz3aJ9O_mae7A/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/WTjWsjmSU3wKz3aJ9O_mae7A/pasted_image.png"></a></div>



<a name="188556754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188556754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188556754">(Feb 19 2020 at 15:55)</a>:</h4>
<p>also the github action we use for installing the musl target only supports a single target, I'm working on a PR to allow for <code>targets</code> instead</p>



<a name="188556793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188556793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188556793">(Feb 19 2020 at 15:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116013">@qmx</span> can't we just call <code>rustup target add</code> manually?</p>



<a name="188556815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188556815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188556815">(Feb 19 2020 at 15:55)</a>:</h4>
<p>I've send a PR which disables libbacktrace</p>



<a name="188556902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188556902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188556902">(Feb 19 2020 at 15:56)</a>:</h4>
<p>I think that means that we should just be able to do something like <code>RUSTFLAGS="-C linker=rust-lld -C linker-flavor=ld.lld" cargo build -p rust-analyzer --target aarch64-unknown-linux-musl</code></p>



<a name="188557132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557132">(Feb 19 2020 at 15:59)</a>:</h4>
<p><del>I think it can't find <code>pthread</code>, <code>rt</code> and friends</del> Ah, nevermind.</p>



<a name="188557253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557253">(Feb 19 2020 at 16:00)</a>:</h4>
<p>Just <code>__addtf3</code>, <code>__multf3</code> and <code>__subtf3</code></p>



<a name="188557291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557291">(Feb 19 2020 at 16:01)</a>:</h4>
<p><a href="https://github.com/rust-lang/compiler-builtins/issues/201" target="_blank" title="https://github.com/rust-lang/compiler-builtins/issues/201">https://github.com/rust-lang/compiler-builtins/issues/201</a></p>



<a name="188557335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557335">(Feb 19 2020 at 16:01)</a>:</h4>
<p>sure we can, I'm just trying to minimize the amount of custom configurations we have to have for this extra architecture</p>



<a name="188557522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557522">(Feb 19 2020 at 16:03)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> cool, using <code>rust-lld</code> as the linker works!</p>



<a name="188557623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557623">(Feb 19 2020 at 16:04)</a>:</h4>
<p>it'd be really cool if cargo already did this linker choice by default on a cross compilation scenario</p>



<a name="188557812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188557812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188557812">(Feb 19 2020 at 16:06)</a>:</h4>
<p>also verified that your backtrace branch / PR was the last standing native bits on rust-analyzer</p>



<a name="188558161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188558161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188558161">(Feb 19 2020 at 16:10)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> hmm, the PR is green but bors didn't pick it up - do you need to <code>@</code> the bot?</p>



<a name="188558480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188558480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188558480">(Feb 19 2020 at 16:13)</a>:</h4>
<p>seems like there's still problems with delivering hooks. merged manally</p>



<a name="188565989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188565989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188565989">(Feb 19 2020 at 17:34)</a>:</h4>
<blockquote>
<p>Should I add the arm build as another "os" on the matrix?</p>
</blockquote>
<p>it is important that cross build runs in parallel with our other builds, such that it doesn't slow down the release</p>



<a name="188566510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188566510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188566510">(Feb 19 2020 at 17:40)</a>:</h4>
<p>I'll take this as the constraint to guide the solution then</p>



<a name="188566652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188566652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188566652">(Feb 19 2020 at 17:42)</a>:</h4>
<p>It's not really a constraint, just an important nice-to-have</p>



<a name="188566887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188566887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188566887">(Feb 19 2020 at 17:45)</a>:</h4>
<p>Hm, this actually makes me think....</p>
<p>Should we cross-compile to windows from ubuntu as well? The ubuntu build is faster, so cross compilation might actually be a net win?</p>



<a name="188567077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188567077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188567077">(Feb 19 2020 at 17:47)</a>:</h4>
<p>Ohhhh, If we can xcompile from ubuntu to all our targets, we can move most of the release process to <code>xtask</code>...</p>
<p>But I think at least cross-compiling to osx requires installing some extra stuff?</p>



<a name="188589018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188589018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188589018">(Feb 19 2020 at 21:46)</a>:</h4>
<p>Added a check to CI to make sure we don't regress no c state: <a href="https://github.com/rust-analyzer/rust-analyzer/pull/3242" target="_blank" title="https://github.com/rust-analyzer/rust-analyzer/pull/3242">https://github.com/rust-analyzer/rust-analyzer/pull/3242</a></p>
<p>was quite surprised to learn that we build libbacktrace by default :D</p>



<a name="188590121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188590121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188590121">(Feb 19 2020 at 21:58)</a>:</h4>
<p>It's still not used, right?</p>



<a name="188590441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188590441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188590441">(Feb 19 2020 at 22:02)</a>:</h4>
<p>right, it was used in a debug-only fn which was never called</p>



<a name="188644550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188644550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vincent Rouillé <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188644550">(Feb 20 2020 at 14:56)</a>:</h4>
<p>Windows user here: I'm using lld-link to link everything rust produce and have done it without a hitch for two years now :) It really speed up global compile time (link.exe is slooooww).</p>



<a name="188646530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188646530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188646530">(Feb 20 2020 at 15:17)</a>:</h4>
<p>Well, RA is too much even for <code>lld</code>, some of the crates take some 60-80 seconds for ThinLTO and linking</p>



<a name="188661848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188661848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188661848">(Feb 20 2020 at 18:04)</a>:</h4>
<p><span class="user-mention" data-user-id="224971">@Vincent Rouillé</span> I haven't tried that on windows. Is t hat just for arm of x64 too?</p>



<a name="188686388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188686388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vincent Rouillé <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188686388">(Feb 20 2020 at 22:35)</a>:</h4>
<p>For example, FreeBSD is currently using lld as default ELF linker on amd64, arm*, aarch64 and powerpc64<br>
In lld 7 (we are at 9/10 now) release note it says: "lld 7 for ELF, COFF and MinGW are production-ready."<br>
In lld 9 they state: "The Linux kernel for arm32_7, arm64, ppc64le and x86_64 can now be linked by lld."<br>
So it should go quite well.</p>



<a name="188686535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/188686535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vincent Rouillé <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#188686535">(Feb 20 2020 at 22:37)</a>:</h4>
<p>If I recall correctly it took them some times to implements most of ld scripts, while the ELF part was quite complete.</p>



<a name="190568244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190568244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190568244">(Mar 13 2020 at 23:59)</a>:</h4>
<p>this should make the github action a little bit cleaner: <a href="https://github.com/actions-rs/toolchain/pull/62" target="_blank" title="https://github.com/actions-rs/toolchain/pull/62">https://github.com/actions-rs/toolchain/pull/62</a></p>



<a name="190568251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190568251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190568251">(Mar 13 2020 at 23:59)</a>:</h4>
<p>let's hope the maintainers accept it</p>



<a name="190968016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190968016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190968016">(Mar 18 2020 at 11:38)</a>:</h4>
<p>in the mean time, another question - how should the file naming strategy be? currently we have <code>rust-analyzer-linux</code> - would we just append a new binary <code>rust-analyzer-linux-armv7</code> to the release?</p>



<a name="190968045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190968045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190968045">(Mar 18 2020 at 11:39)</a>:</h4>
<p>on the same note, is the auto-update feature within vscode architecture-aware?</p>



<a name="190968075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190968075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190968075">(Mar 18 2020 at 11:39)</a>:</h4>
<p>Yeah, I think <code>rust-analyzer-linux-armv7</code> would do. We probably should change the others to <code>-x64</code>, but that can be done separatelly</p>



<a name="190968083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190968083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190968083">(Mar 18 2020 at 11:39)</a>:</h4>
<p>Yup, auto-update is arch-aware</p>



<a name="190968534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/190968534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#190968534">(Mar 18 2020 at 11:45)</a>:</h4>
<p>I was just looking here and the last update for actions-rs/toolchain was two months ago :(</p>



<a name="191062389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/191062389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#191062389">(Mar 19 2020 at 01:09)</a>:</h4>
<p>any thoughts on just naming the binaries with their equivalent rust target-triple?</p>



<a name="191062445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/191062445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> qmx <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#191062445">(Mar 19 2020 at 01:10)</a>:</h4>
<p>that could remove a bunch of "hardcoding" on build scripts and allow for new targets to be added later with minimal changes</p>



<a name="191076034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/191076034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#191076034">(Mar 19 2020 at 06:55)</a>:</h4>
<blockquote>
<p>that could remove a bunch of "hardcoding" on build scripts and allow for new targets to be added later with minimal changes</p>
</blockquote>
<p>This will make the TypeScript side more complicated though. Also, binaries are public facing (downloading them manually from github is supported), and target tripples look scary for not already familiar with them</p>



<a name="191076109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/ARM%20build%3F/near/191076109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/ARM.20build.3F.html#191076109">(Mar 19 2020 at 06:56)</a>:</h4>
<p>So I would probably stick with minimal naming. It's not that we are going to add a whole lot of targets</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>